推荐语:随着来自无数领域的科学家争相进行算法分析,谷歌的Patrick Riley(Google Accelerated Science团队的首席工程师和高级研究员)呼吁在研究和报告方面应有明确的标准。这篇文章指出了其团队在利用机器学习过程中遇到的三个问题,如何科学地拆分训练集与测试集、排除影响算法的干扰因素以及设置更好的目标,并根据切身经历提出了一些非常实用且有价值的建议。我个人觉得不管是对于机器学习领域爱好者还是对于其他诸如经济学领域的学者,这篇短文都具有很强的借鉴意义,我们在建立模型的同时也应该具备这种考虑问题的思维,即必须对自己使用的模型有着充分的理解与认识。
——叶武威
机器学习正在推动整个科学的发现,从寻找制造分子的新方法、在试验中发现微弱的信号,到改善医疗诊断、揭示基本粒子,其强大的模式发现和预测工具正在各个领域帮助研究人员。不过,机器学习工具也会变成傻瓜(fool's gold)----假阳性(false positives),死胡同(blind alleys)和各种错误。许多算法都非常复杂,以至于无法检查所有参数,也不可能确切地了解输入方式。伴随着这些算法开始得到更广泛的应用,误解、错误的结论以及浪费科学成果所引发的风险将呈螺旋式上升。这些问题并不稀奇。机器学习领域几十年来一直饱受“坦克问题”的折磨。最初的研究似乎是在20世纪60年代出现的(参考文献1是此研究已知的最早文献,感谢软件工程师Jeff Kaufman),事件详情已消逝在时间的迷雾中,不过故事大概是这样的:研究人员在军方提供的照片中编写了一种识别坦克的算法,该模型在测试图中成功地找到了坦克,但随后使用真实的照片却失败了。为什么会失败?人们复述故事的细节各不相同,但真正的原因是模型用于训练的图片包含了其他图案----比如坦克出现的环境是在晨光中或是在云层下。因此,真正推动算法的是这些其他因素,而不是坦克本身。类似的情形如今也引起了学者的反省[2]。许多机器学习论文没有进行足够的实验,评审标准也不一致,激烈的竞争促使一些研究人员一旦得到了他们想要的答案就偷工减料并跳过审查。我们无法预测每次分析会产生的所有困难。但至少,那些在自己研究领域使用机器学习的学者们,应该熟悉一些常见的陷阱,以及如何检查或避免那些陷阱。为了说明这一点,我着重阐述我们在Google Accelerated Science团队中面临并克服的机器学习的三个问题。
在建模时,机器学习从业者通常会将数据拆分为训练集和测试集。训练集训练模型,测试集则用来评估模型的性能。通常情况下,研究人员都是随机拆分数据,然而在现实生活中,随机的数据是很少见的,它们可能包含时间趋势,例如收集数据方式的变化,或者收集哪些信息。举例来说,这种历史模式隐藏在分子数据集中,而机器学习算法正在对这些数据集进行虚拟筛选,以寻找候选药物。这里的挑战在于预测一个分子将如何有效地被吸收到体内或减少炎症。筛选从有关分子的数据开始,这些分子具有或不具有预期的效果,但是收集数据的背景或许会与机器学习模型的使用方式有所不同。例如,一个模型可以建立在一组公共可用的分子上,然后在另一组专有的分子上使用。而当有希望的候选项被检测或丢弃时,化学家的视线往往从某些分子群转向其他分子群。因此,研究人员经常高估模型在实践中的表现[3]。这可能导致期望过高,并且在选择不合适的分子上浪费大量时间和金钱。许多模型建立者(包括我自己)都陷入过这个陷阱。换句话说,你想要解决的问题才应该影响你拆分数据的方式。为了预测向一个分子中添加两个原子的效果,测试集中的每个分子在训练集中应该至少存在两个原子的差别。如果你想对不同分子做出更好的预测,那么测试集中的每个分子都应该与训练集中的所有分子不同。拆分数据的“正确”方式可能并不明显,但是仔细考虑和尝试几种方法会有意想不到的收获。
在理想的实验中,研究者只改变他们感兴趣的变量,并保持其他变量不变,不过这种控制在现实当中通常是不可能的。随着时间的推移,设备的精度会改变,试剂的批次不同,一个实验条件在另一个之前进行,结果甚至可能被天气扭曲。机器学习模型中,这种不受控制的变量显然是有害的。
例如,我所在的Google团队一直在加利福尼亚州Foothill Ranch的核聚变初创公司TAE Technologies工作,进行优化生产高能等离子体的实验[4]。我们建立模型来尝试和理解等离子机的最佳设备设置,这里有从何时给电极通电到在磁铁上设置电压等数百个控制参数,一系列包括温度和光谱在内的测量值都将会被记录下来。
我们从等离子机的数千次运行中获取了数月的数据。设备的调整和修改、组件磨损以及尝试不同的想法时,设置会有所不同。当在给定的设置条件下,无论等离子体的能量是否会变高,我们的模型都能很好的预测时,我们显得很兴奋。不过很快,我们的预测就明显不是基于我们之前的想法了。
加州TAE技术公司和谷歌的研究人员正在利用机器学习来优化产生高能等离子体的设备
当我们再次训练模型时,将实验时间作为唯一输入,而不是机器的所有设置,我们获得了类似之前的预测能力。这又是为什么呢?我们认为第一个模型锁定的就是时间趋势,而不是物理现象。随着实验的进行,有一段时间机器运行良好,有些时间却没有。因此,实验时间可以提供有关产生的等离子体是否为高能量的信息。此外,还可以根据控制参数的设置粗略地预测实验的时间----这些参数的变化也有时间趋势。隐藏变量也可以源于实验的布局。例如,我们正在与许多合作者合作解释显微镜图像,包括纽约市的纽约干细胞基金会研究所(New York Stem Cell Foundation Research Institute)。这些图像包括在培养皿上进行的生物实验阵列——通常是包含细胞和液体的网格井,其目标是找到具有某些确定特征的井,例如化学处理后细胞外观的变化。 但生物变化意味着每个培养皿看起来总是略有不同,并且单个培养皿可能也存在差异,例如,假如周边井格中蒸发了更多的液体,或者培养皿有所倾斜,边缘看起来就会与中心不同。机器学习算法可以轻松识别(pick up)这些无意识的变化。例如,模型可能只识别出了哪些井在培养皿边缘。检查是否发生了这种情况的一个简单方法是让模型预测其他事情,如培养皿的位置,哪个培养皿以及图像来自哪个批次。如果算法可以做到这一点,那你最好对实验结果持怀疑态度。经验就是:使用多个机器学习模型来检测预期外以及隐藏变量。一个模型侧重于你关心的问题,等离子体是高能量还是低能量,细胞是否健康,其他模型则帮你清除干扰因素。如果后者的结果很强,就标准化数据,再进行进一步的实验或调整结论。
机器学习算法要求研究人员指定一个“损失函数”,它决定了各种错误的严重程度,例如,是两个错误各占1%好,还是单个错误占2%更好。机器学习从业者倾向于使用函数的一小部分,这使得他们无法得到他们真正想要的。
举例来说,我们一直在用机器学习来帮助求解偏微分方程[5]。这些公式在流体力学、电磁学、材料科学、天体物理学和经济建模等学科中都很常见。通常,它们必须通过数值求解,我们训练模型以在有限的条件下提供更好的精度。我们从一个方程开始描述水波是如何在一维中传播的,该算法的任务是从当前的时间步长重复预测下一个时间步长。我们有两个略有不同的方程和训练模型,根据损失函数,这两个模型性能相当,不过一个模型是胡说八道毫无道理,另一个则接近预期的结果。为什么会这样呢?控制学习的损失函数只考虑下一步的误差,而不考虑多步骤解决方案的有效性,而后者才是我们真正想要的。我们在糖尿病性视网膜病变的机器筛查工作中也出现了目标分歧[6],该病是糖尿病的并发症,也是世界上可预防性失明的主要原因。如果从眼后图像中提早检测到这种情况,就可以有效地治疗该病症。当我们收集数据并让眼科医生根据图像提供诊断时,同时要求机器学习工具预测眼科医生会说些什么的时候,两个问题出现了。
印度Madurai Aravind hospital的一项眼科检查,工作人员和谷歌的研究人员正试图自动诊断糖尿病导致的失明
首先,眼科医生对机器学习的诊断常持不同意见。因此,我们意识到模型不能建立在单一预测的基础上。我们也不能采纳多数票的观点,因为在医疗准确性方面,有时少数人的观点才是正确的。其次,单一疾病的诊断实际上并不是真正的目标。 我们应该问问 “这位患者应该去看医生吗”,于是,我们将目标从单一疾病的诊断扩展到多种疾病。对于机器学习从业者而言,他们很容易迷恋上数据和标签都很清晰的“明显”目标,但他们可能正在建立解决错误问题的算法。总体目标必须铭记在心,否则我们的工作也只是在解决错误的问题上越走越远。
首先,机器学习专家需要让自己和同事保持更高的标准。当一个新实验室设备到达时,我们希望实验室同事能够理解它的功能,如何校准设备、检测错误,以及知道它的能力范围。当然,对于机器学习也是如此,它并没有魔法,使用它们的人必须懂自己手中的这些工具。其次,不同的学科需要制定明确的标准,以便在各自领域执行和报告机器学习。适当的控制(appropriate controls),稳健性检查(soundness checks)和误差测量(error measurements)会因不同的领域而有所不同,这些都需要清楚地说明,以便研究人员,审稿人和主编能够鼓励推广这些良好的行为。第三,机器学习科学家的接受的教育需要包括一些更广泛的内容。虽然已经存在一些开放资源(如http://ai.google/education),但其实还需要更多。我们教授算法和工具,但学生需要更多地了解如何应用他们的算法并对其进行适当的质疑。我们正处于一个神奇的点上---在机器学习的帮助下,计算能力、数据和算法交织在一起,为发现创造了巨大的机会。作为一个科学团队,我们有责任确保我们充分利用了这个机会。参考文献:
1.Kanal, L. N. & Randall, N. C. In Proc. 1964 19th ACM National Conf. 42.501–42.5020 (ACM, 1964).2.Lipton, Z. C. & Steinhardt, J. Preprint at arXiv.
http://arxiv.org/abs/1807.03341 (2018).3.Sheridan, R. P. J. Chem. Inform. Model. 53, 783–790 (2013).
4.Baltz, E. A. et al. Sci. Rep. 7, 6425 (2017).
PubMed Article Google Scholar5.Bar-Sinai, Y., Hoyer, S., Hickey, J. & Brenner, M. P. Proc. Natl Acad. Sci. USA https://doi.org/10.1073/pnas.1814058116 (2019). Article Google Scholar6.Gulshan, V. et al. J. Am. Med. Assoc. 316, 2402–2410 (2016).
Article Google Scholar
注:点击阅读原文查看原文网站
►往期推荐
回复【Python】👉简单有用易上手
回复【学术前沿】👉机器学习丨大数据
回复【数据资源】👉公开数据
回复【可视化】👉你心心念念的数据呈现
回复【老姚专栏】👉老姚趣谈值得一看
►一周热文
特别推荐丨老姚专栏:漫谈小样本问题
数据呈现丨轻松用 Seaborn 进行数据可视化
学术前沿丨大数据在劳动力市场研究中的应用与展望
学术前沿丨当计量经济学遭遇机器学习(四):高维回归之LASSO
数据呈现丨中文文本可视化:用 Python 轻松制作词云
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
作者:Patrick Riley翻译:威武哥(叶武威)编辑:青酱
欢迎扫描👇二维码添加关注